#!/usr/bin/env node
import figlet from "figlet";
import chalk from "chalk";
import { program } from "commander";
import { readFile } from "fs/promises";
import { templates } from "./constants.js";
import initAction from "./initAction.js";

const pkg = JSON.parse(
  await readFile(new URL("./package.json", import.meta.url))
);

program.version(pkg.version, "-v --version");

program.option("-w --mycli", "a mycli cli program~");
program.option(
  "-d --dest <dest>",
  "a destination folder, 例如: -d src/components"
);

program.on("--help", () => {
  console.log("");
  console.log("others:");
  console.log("  xxx");
  console.log("  yyy");
});

// 2.增加具体的一些功能操作
program
  .command("create <project-name>")
  .description("创建一个新项目")
  .option("-t --template [template]", "输入模板名称创建项目")
  .option("-f --force", "强制覆盖本地同名项目")
  .option("-i --ignore", "忽略项目相关描述，快速创建项目")
  .action(initAction); //具体做什么行为

program
  .command("list")
  .description("查看所有可用模块")
  .action(() => {
    console.log("模板列表");
    templates.forEach((item) => {
      console.log(item.desc);
    });
  }); //具体做什么行为

// console.log(
//   "\r\n" +
//     figlet.textSync("zhangyingyi", {
//       font: "Ghost",
//       horizontalLayout: "default",
//       verticalLayout: "default",
//       width: 80,
//       whitespaceBreak: true,
//     })
// );
program.parse(process.argv);
